package com.hexinfo.dmpro.sparing.service;

import cn.hutool.core.io.file.FileAppender;
import com.hexinfo.dmpro.sparing.dto.TableSyncConfDTO;
import com.hexinfo.dmpro.sparing.model.HdfsHeatBackup;
import com.hexinfo.dmpro.sparing.model.HotStandbyTable;
import com.hexinfo.dmpro.sparing.model.TableSyncConf;
import com.hexinfo.dmpro.sparing.model.TimeFieldMatching;

import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;

public interface TableSyncMethodService {
    List<HdfsHeatBackup> gainFileData(String startTime, String endTime, String JQHdfsPrefix, String WGHdfsPrefix, String filePath);
    int execShellCode(String shell, FileAppender heatLog);
    int execDistcpCode(String shell, FileAppender heatLog);
    void execSqlHive(String setSql, String msckSql, FileAppender heatLog);
    void refreshDataImpala(String sql,FileAppender heatLog);
    void execSqlImpala(String refreshSql,FileAppender heatLog);
    void dropRangeBeyond(HotStandbyTable hotStandbyTable, Map<String, String> map,String dbTbName);
    void dropRangeWithin(HotStandbyTable hotStandbyTable,Map<String, String> map,String dbTbName);
    void dataCompare(HotStandbyTable hotStandbyTable,Map<String, String> map,String dbTbName);

    Boolean futureStatus(List<Future<Boolean>> futures, Integer threadMonitoring);
}
